#ifndef STEERINGBEHAVIORS_H
#define STEERINGBEHAVIORS_H
/**************************************
 ** Purpose: To provide movement for
 ** artificial intelligence without
 ** a game world. This will act as a
 ** simulation and predictor as to where
 ** the AI should move and how.
 **************************************/
#include "Vector3D.h"

class SteeringBehavior
{
	public:
		//This function will wander the agent to a set
		//of point which are randomly generate into the
		//area.
		void agentWander(const float& maxSpeed);

		//This function will make the agent seek it's target
		//until it reaches the target destination
		void agentSeek(float& positionX, float& positionY, const float& targetX, const float& targetY, const float& maxSpeed);

		//This function will make the agent flee it's target
		//until a set number of conditions are met.
		void agentFlee(float& positionX, float& positionY, const float& targetX, const float& targetY, const float& maxSpeed);

		//This function will provide functionality for the 
		//transition of an agent arriving at it's destination
		void agentArrive(float& positionX, float& positionY, const float& targetX, const float& targetY);

		//This function will provide functionality for the
		//agent to attack it's target.
		void agentAttack(const bool& bIsAttacking);

		//This function will provide a means for the agent to
		//align itself with an object which is in front of it
		void agentAlign(float& positionX, float& positionY);
};
#endif